package com.erp.erp_ui.business.vo;

import com.erp.erp_ui.warehouse.vo.AnnexVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName : OfferProductDetailVo
 * @Description : 报价产品明细出参实体
 * @Author : lst
 * @Date: 2021-01-16 23:35
 */
public class OfferProductDetailVo {

    /**
     * 主键
     */
    private Integer id;

    /**
     * 报价主表id
     */
    private Integer parentId;

    /**
     * 图片
     */
    private String img;

    /**
     * 产品编码
     */
    private String productCode;

    /**
     * 规格编码
     */
    private String specificationCode;

    /**
     * 规格说明
     */
    private String specificationExplanation;

    /**
     * 客户货号
     */
    private String clientProductNo;

    /**
     * 产品中文名称
     */
    private String productCname;

    /**
     * 产品英文名称
     */
    private String productEname;

    /**
     * 产品中文描述
     */
    private String productCdesc;

    /**
     * 产品英文描述
     */
    private String productEdesc;

    /**
     * 数量
     */
    private BigDecimal productNum;

    /**
     * 剩余数量
     */
    private BigDecimal remainingQuantity;

    /**
     * 产品单位名称
     */
    private String productUnitName;

    /**
     * 产品单位编码
     */
    private String productUnitCode;

    /**
     * 单价
     */
    private BigDecimal unitPrice;

    /**
     * 金额小计
     */
    private BigDecimal moneySubtotal;

    /**
     * 人民币采购价
     */
    private BigDecimal purchasePriceRmb;

    /**
     * 美金采购价
     */
    private BigDecimal purchasePriceUsd;

    /**
     * 利润额
     */
    private BigDecimal profitMargin;

    /**
     * 仓库费用比
     */
    private BigDecimal warehouseCostRatio;

    /**
     * 40HQ海运费
     */
    private BigDecimal fortyOceanFreight;

    /**
     * 40HQ
     */
    private BigDecimal fortyHq;

    /**
     * 边际利润率
     */
    private BigDecimal marginalProfitRatio;

    /**
     * 仓库费用金额
     */
    private BigDecimal warehouseCostAmount;

    /**
     * 利润率
     */
    private BigDecimal profitMarginRatio;

    /**
     * 进口关税
     */
    private BigDecimal importTariffs;

    /**
     * 退税率
     */
    private BigDecimal taxRebateRate;

    /**
     * 增值税率
     */
    private BigDecimal vatRate;

    /**
     * 颜色
     */
    private String color;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 海关编码
     */
    private String customsCode;

    /**
     * 报关品名
     */
    private String nameCustomsDeclaration;

    /**
     * 英文品名
     */
    private String englishProductName;

    /**
     * 报关单位
     */
    private String customsDeclarationUnit;

    /**
     * 配件集合
     */
    private List<OfferProductPartsDetailVo> partsList;

    /**
     * 费用集合
     */
    private List<OfferCostDetailVo> costList;

    /**
     * 附件集合
     */
    private List<AnnexVo> annexList;


    /**
     * 是否可以被删除 1:否 0:是(可以被删除表明该产品未被下游调用)
     */
    private Integer isDelete;

    /**
     * 报价单号
     */
    private String offerBillNo;

    /**
     * 报价信息
     */
    private OfferInfoVo offerInfo;


    public List<OfferCostDetailVo> getCostList() {
        return costList;
    }

    public void setCostList(List<OfferCostDetailVo> costList) {
        this.costList = costList;
    }

    public List<AnnexVo> getAnnexList() {
        return annexList;
    }

    public void setAnnexList(List<AnnexVo> annexList) {
        this.annexList = annexList;
    }

    public OfferInfoVo getOfferInfo() {
        return offerInfo;
    }

    public void setOfferInfo(OfferInfoVo offerInfo) {
        this.offerInfo = offerInfo;
    }

    public String getOfferBillNo() {
        return offerBillNo;
    }

    public void setOfferBillNo(String offerBillNo) {
        this.offerBillNo = offerBillNo;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public BigDecimal getRemainingQuantity() {
        return remainingQuantity;
    }

    public void setRemainingQuantity(BigDecimal remainingQuantity) {
        this.remainingQuantity = remainingQuantity;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getSpecificationCode() {
        return specificationCode;
    }

    public void setSpecificationCode(String specificationCode) {
        this.specificationCode = specificationCode;
    }

    public String getSpecificationExplanation() {
        return specificationExplanation;
    }

    public void setSpecificationExplanation(String specificationExplanation) {
        this.specificationExplanation = specificationExplanation;
    }

    public String getClientProductNo() {
        return clientProductNo;
    }

    public void setClientProductNo(String clientProductNo) {
        this.clientProductNo = clientProductNo;
    }

    public String getProductCname() {
        return productCname;
    }

    public void setProductCname(String productCname) {
        this.productCname = productCname;
    }

    public String getProductEname() {
        return productEname;
    }

    public void setProductEname(String productEname) {
        this.productEname = productEname;
    }

    public String getProductCdesc() {
        return productCdesc;
    }

    public void setProductCdesc(String productCdesc) {
        this.productCdesc = productCdesc;
    }

    public String getProductEdesc() {
        return productEdesc;
    }

    public void setProductEdesc(String productEdesc) {
        this.productEdesc = productEdesc;
    }

    public BigDecimal getProductNum() {
        return productNum;
    }

    public void setProductNum(BigDecimal productNum) {
        this.productNum = productNum;
    }

    public String getProductUnitName() {
        return productUnitName;
    }

    public void setProductUnitName(String productUnitName) {
        this.productUnitName = productUnitName;
    }

    public String getProductUnitCode() {
        return productUnitCode;
    }

    public void setProductUnitCode(String productUnitCode) {
        this.productUnitCode = productUnitCode;
    }

    public BigDecimal getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getMoneySubtotal() {
        return moneySubtotal;
    }

    public void setMoneySubtotal(BigDecimal moneySubtotal) {
        this.moneySubtotal = moneySubtotal;
    }

    public BigDecimal getPurchasePriceRmb() {
        return purchasePriceRmb;
    }

    public void setPurchasePriceRmb(BigDecimal purchasePriceRmb) {
        this.purchasePriceRmb = purchasePriceRmb;
    }

    public BigDecimal getPurchasePriceUsd() {
        return purchasePriceUsd;
    }

    public void setPurchasePriceUsd(BigDecimal purchasePriceUsd) {
        this.purchasePriceUsd = purchasePriceUsd;
    }

    public BigDecimal getProfitMargin() {
        return profitMargin;
    }

    public void setProfitMargin(BigDecimal profitMargin) {
        this.profitMargin = profitMargin;
    }

    public BigDecimal getWarehouseCostRatio() {
        return warehouseCostRatio;
    }

    public void setWarehouseCostRatio(BigDecimal warehouseCostRatio) {
        this.warehouseCostRatio = warehouseCostRatio;
    }

    public BigDecimal getFortyOceanFreight() {
        return fortyOceanFreight;
    }

    public void setFortyOceanFreight(BigDecimal fortyOceanFreight) {
        this.fortyOceanFreight = fortyOceanFreight;
    }

    public BigDecimal getFortyHq() {
        return fortyHq;
    }

    public void setFortyHq(BigDecimal fortyHq) {
        this.fortyHq = fortyHq;
    }

    public BigDecimal getMarginalProfitRatio() {
        return marginalProfitRatio;
    }

    public void setMarginalProfitRatio(BigDecimal marginalProfitRatio) {
        this.marginalProfitRatio = marginalProfitRatio;
    }

    public BigDecimal getWarehouseCostAmount() {
        return warehouseCostAmount;
    }

    public void setWarehouseCostAmount(BigDecimal warehouseCostAmount) {
        this.warehouseCostAmount = warehouseCostAmount;
    }

    public BigDecimal getProfitMarginRatio() {
        return profitMarginRatio;
    }

    public void setProfitMarginRatio(BigDecimal profitMarginRatio) {
        this.profitMarginRatio = profitMarginRatio;
    }

    public BigDecimal getImportTariffs() {
        return importTariffs;
    }

    public void setImportTariffs(BigDecimal importTariffs) {
        this.importTariffs = importTariffs;
    }

    public BigDecimal getTaxRebateRate() {
        return taxRebateRate;
    }

    public void setTaxRebateRate(BigDecimal taxRebateRate) {
        this.taxRebateRate = taxRebateRate;
    }

    public BigDecimal getVatRate() {
        return vatRate;
    }

    public void setVatRate(BigDecimal vatRate) {
        this.vatRate = vatRate;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getCustomsCode() {
        return customsCode;
    }

    public void setCustomsCode(String customsCode) {
        this.customsCode = customsCode;
    }

    public String getNameCustomsDeclaration() {
        return nameCustomsDeclaration;
    }

    public void setNameCustomsDeclaration(String nameCustomsDeclaration) {
        this.nameCustomsDeclaration = nameCustomsDeclaration;
    }

    public String getEnglishProductName() {
        return englishProductName;
    }

    public void setEnglishProductName(String englishProductName) {
        this.englishProductName = englishProductName;
    }

    public String getCustomsDeclarationUnit() {
        return customsDeclarationUnit;
    }

    public void setCustomsDeclarationUnit(String customsDeclarationUnit) {
        this.customsDeclarationUnit = customsDeclarationUnit;
    }

    public List<OfferProductPartsDetailVo> getPartsList() {
        return partsList;
    }

    public void setPartsList(List<OfferProductPartsDetailVo> partsList) {
        this.partsList = partsList;
    }

    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("OfferProductDetailVo").append('[')
                .append("id=")
                .append(id)
                .append(",parentId=")
                .append(parentId)
                .append(",img=")
                .append(img)
                .append(",productCode=")
                .append(productCode)
                .append(",specificationCode=")
                .append(specificationCode)
                .append(",specificationExplanation=")
                .append(specificationExplanation)
                .append(",clientProductNo=")
                .append(clientProductNo)
                .append(",productCname=")
                .append(productCname)
                .append(",productEname=")
                .append(productEname)
                .append(",productCdesc=")
                .append(productCdesc)
                .append(",productEdesc=")
                .append(productEdesc)
                .append(",productNum=")
                .append(productNum)
                .append(",productUnitName=")
                .append(productUnitName)
                .append(",productUnitCode=")
                .append(productUnitCode)
                .append(",unitPrice=")
                .append(unitPrice)
                .append(",moneySubtotal=")
                .append(moneySubtotal)
                .append(",purchasePriceRmb=")
                .append(purchasePriceRmb)
                .append(",purchasePriceUsd=")
                .append(purchasePriceUsd)
                .append(",profitMargin=")
                .append(profitMargin)
                .append(",warehouseCostRatio=")
                .append(warehouseCostRatio)
                .append(",fortyOceanFreight=")
                .append(fortyOceanFreight)
                .append(",fortyHq=")
                .append(fortyHq)
                .append(",marginalProfitRatio=")
                .append(marginalProfitRatio)
                .append(",warehouseCostAmount=")
                .append(warehouseCostAmount)
                .append(",profitMarginRatio=")
                .append(profitMarginRatio)
                .append(",importTariffs=")
                .append(importTariffs)
                .append(",taxRebateRate=")
                .append(taxRebateRate)
                .append(",vatRate=")
                .append(vatRate)
                .append(",color=")
                .append(color)
                .append(",supplierName=")
                .append(supplierName)
                .append(",customsCode=")
                .append(customsCode)
                .append(",nameCustomsDeclaration=")
                .append(nameCustomsDeclaration)
                .append(",englishProductName=")
                .append(englishProductName)
                .append(",customsDeclarationUnit=")
                .append(customsDeclarationUnit)
                .append(",partsList=")
                .append(partsList)
                .append(']');
        return sb.toString();
    }
}
